this._discreteItem, 'value',
GObject.BindingFlags.SYNC_CREATE);
- this._sliderItem.connect('notify::value',
+ this._sliderItemChangedId = this._sliderItem.connect('notify::value',
() => (this._proxy.Brightness = this._sliderItem.value));
- this._discreteItem.connect('notify::value',
+ this._discreteItemChangedId = this._discreteItem.connect('notify::value',
() => (this._proxy.Brightness = this._discreteItem.value));
}
this.checked = brightness > 0;
const useSlider = this._proxy.Steps >= 4;
+ this._sliderItem.block_signal_handler(this._sliderItemChangedId);
+ this._discreteItem.block_signal_handler(this._discreteItemChangedId);
+
this._sliderItem.set({
visible: useSlider,
value: brightness,
if (!useSlider)
this._discreteItem.nLevels = this._proxy.Steps;
+
+ this._sliderItem.unblock_signal_handler(this._sliderItemChangedId);
+ this._discreteItem.unblock_signal_handler(this._discreteItemChangedId);
}
});